Regresión lineal múltiple y regresión logística
2025-10-18
Regresión (continuo): \[ J(\mathbf{w}) \;=\; \frac{1}{2m}\sum_{i=1}^{m}\left(y_j - \hat{y}_j\right)^2 \] donde \(\hat{y}_j = \mathbf{w}^\top \mathbf{x}_j\).
Clasificación binaria: Entropía cruzada (log-loss): \[ J(\mathbf{w}) \;=\; -\frac{1}{m}\sum_{i=1}^{m}\left[\,y_i\log\hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\,\right] \] donde \(\hat{p}_i=\sigma(\mathbf{w}^\top \mathbf{x}_i)=\frac{1}{1+e^{-\mathbf{w}^\top\mathbf{x}_i}}\).
… Para el caso de ejemplo (un modelo tipo lineal)
\[ \mathbf{w_{j}}^\top \;=\; \left[w_{j,1}, w_{j,0}\right] \]
\[ salary_i = x_i \]
\[ \hat{y}_j \;=\; w_{j,1}*x_j + w_{j,0} \]
\[ J(\mathbf{w}) \;=\; \frac{1}{2m}\sum_{i=1}^{m}\left(y_j - w_{j,1}*x_i - w_{j,0}\right)^2 \]
Visualización conceptual: “valle” del error y trayectoria en zig-zag hacia el mínimo.
Para la estimación de \(w_{j,0}\)
\[ w_{j+1,0} = w_{j,0} - \alpha \frac{\partial J}{\partial w_{j,0}} \]
\[ \frac{\partial J}{\partial w_{j,0}} = \frac{\partial}{\partial w_{j,0}} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( y_i - w_{j,1} x_i - w_{j,0} \right)^2 \right) \]
\[ \frac{\partial}{\partial w_{j,0}} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( y_i - w_{j,1}x_i - w_{j,0} \right)^2 \right) = \frac{1}{m} \sum_{i=1}^{m} \left( w_{j,1}x_i + w_{j,0} - y_i \right) \]
Para la estimación de \(w_{j,1}\)
\[ w_{j+1,1} = w_{j,1} - \alpha \frac{\partial J}{\partial w_{j,1}} \]
\[ \frac{\partial J}{\partial w_{j,1}} = \frac{\partial}{\partial w_{j,1}} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( y_i - w_{j,1} x_i - w_{j,0} \right)^2 \right) \]
\[ \frac{\partial J}{\partial w_{j,1}} = \frac{1}{m} \sum_{i=1}^{m} \left( w_{j,1}x_i + w_{j,0} - y_i \right)x_i \]
Práctica recomendada: mini-batch (p. ej., 32–256).
Objetivo biomédico (ejemplo): predecir gasto energético (kcal) a partir de edad, IMC y FC.
Modelo lineal: \[ \hat{y} = \mathbf{w}^\top \mathbf{x} = w_0 + w_1 x_1 + \cdots + w_p x_p \]
Costo (MSE): \[ J(\mathbf{w}) = \frac{1}{2m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 \]
Gradiente: \[ \frac{\partial J}{\partial w_j} = -\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)\,x_{ij} \]
Actualización: \[ w_j \leftarrow w_j - \alpha\,\frac{\partial J}{\partial w_j} \]
in: X (m×p), y (m), α, batch_size, epochs
preprocess: X ← standardize(X)
initialize w ← zeros(p+1) # incluye sesgo w0 si se usa X̃ con columna 1
for epoch in 1..epochs:
for B in iterate_minibatches(X, y, batch_size, shuffle=True):
Xb, yb ← B
yhat ← Xb · w
grad ← (1/|B|) · (Xbᵀ · (yhat - yb))
w ← w - α · grad
return wObjetivo biomédico (ejemplo): clasificar riesgo de enfermedad (0/1) con panel de biomarcadores.
Modelo: \[ \hat{p} = \sigma(\mathbf{w}^\top\mathbf{x}),\quad \sigma(z)=\frac{1}{1+e^{-z}} \]
Costo (entropía cruzada): \[ J(\mathbf{w}) = -\frac{1}{m}\sum_{i=1}^{m}\Big[y_i\log \hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\Big] \]
Gradiente: \[ \frac{\partial J}{\partial w_j} = \frac{1}{m}\sum_{i=1}^{m}(\hat{p}_i - y_i)\,x_{ij} \]
Actualización: \[ w_j \leftarrow w_j - \alpha\,\frac{\partial J}{\partial w_j} \]
in: X (m×p), y∈{0,1}^m, α, batch_size, epochs
preprocess: X ← standardize(X)
initialize w ← zeros(p+1)
for epoch in 1..epochs:
for B in iterate_minibatches(X, y, batch_size, shuffle=True):
Xb, yb ← B
z ← Xb · w
p ← sigmoid(z)
grad ← (1/|B|) · (Xbᵀ · (p - yb))
w ← w - α · grad
return wInferencia: clasificar con umbral \(\hat{p} \ge \tau\) (clínico/operativo).